main() {
//slice(1, null);
slice2(1);
slice2(1, 5);
slice3(1, end: 5, step: 2);

}

// 必选参数
int add(int a, int b) {
  return a + b;
}

// 可选参数经典错误 int? 可以接收 null 值

void slice(int start, int? end) {
  print("切片结束索引$start, 结束索引$end");
}

// 可选位置参数
void slice2(int start, [int? end]) {
  print("切片结束索引$start, 结束索引$end");
}

// 可选命名参数,项目中常用

void slice3(int start,{int? end, int? step}) {

  print("切片开始索引$start, 结束索引$end, 步长$step");
}

